package sword;

/**
 * @Author: 海琳琦
 * @Date: 2022/5/28 10:47
 * https://leetcode.cn/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof/
 */
public class Title65 {

    /**
     * （和 s ）==（非进位和 n ）+（进位 c）
     * @param a
     * @param b
     * @return
     */
    public static int add(int a, int b) {
        //每一位都有对应一个加法器，那我们就需要构造多个加法器来支持多位加法。
        while (b != 0) {
            //模拟加运算
            //计算进位
            int c = a & b;
            //计算本位和
            a = a ^ b;
            //进位
            b = c << 1;
        }
        return a;
    }

    public static void main(String[] args) {
        add(20, 17);
    }
}
